package aop.xyz.myapp.account;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class SystemArchitecture {
	
	/**
	 * execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?
	 */
	
	/**
	 * Alternatively, you can write the expression using the 'bean'
	 * PCD, like so "bean(*Service)"
	 */
	@Pointcut("execution(* aop.xyz.myapp.service.*.*(..))")
	public void businessService() {}
	
	@Pointcut("execution(public * saveUser(..))")
	public void saveUser() {}

	@Pointcut("execution(public * delUser(aop.xyz.myapp.domain.account.User))")
	public void delUserByBean() {}
	
	@Pointcut("execution(public * delUser(Long))")
	public void delUserById() {}
}
